where "startx" will cause qemu dm to die.
Signed-off-by: Xin Li <xin.b.li@intel.com>
Signed-off-by: Christian Limpach <Christian.Limpach@xensource.com>
static void vga_draw_graphic(VGAState *s, int full_update)
{
int y1, y, update, page_min, page_max, linesize, y_start, double_scan, mask;
- int width, height, shift_control, line_offset, page0, page1, bwidth;
+ int width, height, shift_control, line_offset, bwidth;
+ ram_addr_t page0, page1;
int disp_width, multi_scan, multi_run;
uint8_t *d;
uint32_t v, addr1, addr;
Index: ioemu/hw/mc146818rtc.c
===================================================================
---- ioemu.orig/hw/mc146818rtc.c 2006-07-14 15:55:55.450963213 +0100
-+++ ioemu/hw/mc146818rtc.c 2006-07-14 15:56:02.195195680 +0100
+--- ioemu.orig/hw/mc146818rtc.c 2006-07-26 13:18:13.783025944 +0100
++++ ioemu/hw/mc146818rtc.c 2006-07-26 13:20:34.934314196 +0100
@@ -178,10 +178,27 @@
}
}
static void rtc_copy_date(RTCState *s)
Index: ioemu/hw/pc.c
===================================================================
---- ioemu.orig/hw/pc.c 2006-07-14 15:56:01.774243586 +0100
-+++ ioemu/hw/pc.c 2006-07-14 15:56:02.196195566 +0100
+--- ioemu.orig/hw/pc.c 2006-07-26 13:20:34.463363339 +0100
++++ ioemu/hw/pc.c 2006-07-26 13:20:34.935314092 +0100
@@ -151,7 +151,7 @@
}
QEMUMachine pc_machine = {
Index: ioemu/vl.c
===================================================================
---- ioemu.orig/vl.c 2006-07-14 15:56:02.010216731 +0100
-+++ ioemu/vl.c 2006-07-14 15:56:02.198195338 +0100
+--- ioemu.orig/vl.c 2006-07-26 13:20:34.812326925 +0100
++++ ioemu/vl.c 2006-07-26 13:20:34.937313883 +0100
@@ -164,6 +164,8 @@
int xc_handle;
qemu_mod_timer(gui_timer, qemu_get_clock(rt_clock));
Index: ioemu/vl.h
===================================================================
---- ioemu.orig/vl.h 2006-07-14 15:56:01.779243017 +0100
-+++ ioemu/vl.h 2006-07-14 15:56:02.199195224 +0100
+--- ioemu.orig/vl.h 2006-07-26 13:20:34.467362921 +0100
++++ ioemu/vl.h 2006-07-26 13:20:34.938313779 +0100
@@ -556,7 +556,7 @@
int boot_device,
DisplayState *ds, const char **fd_filename, int snapshot,
-diff -r 2b3e57b3e1ec cpu-all.h
---- a/cpu-all.h Mon Jun 26 15:16:39 2006 +0100
-+++ b/cpu-all.h Mon Jun 26 15:16:44 2006 +0100
-@@ -822,7 +822,7 @@ int cpu_inl(CPUState *env, int addr);
+Index: ioemu/cpu-all.h
+===================================================================
+--- ioemu.orig/cpu-all.h 2006-07-26 13:19:49.515051864 +0100
++++ ioemu/cpu-all.h 2006-07-26 13:19:49.563046860 +0100
+@@ -822,7 +822,7 @@
/* memory API */
extern int phys_ram_fd;
extern uint8_t *phys_ram_base;
extern uint8_t *phys_ram_dirty;
-diff -r 2b3e57b3e1ec hw/pc.c
---- a/hw/pc.c Mon Jun 26 15:16:39 2006 +0100
-+++ b/hw/pc.c Mon Jun 26 15:16:44 2006 +0100
-@@ -147,7 +147,7 @@ static void cmos_init_hd(int type_ofs, i
+Index: ioemu/hw/pc.c
+===================================================================
+--- ioemu.orig/hw/pc.c 2006-07-26 13:19:49.516051760 +0100
++++ ioemu/hw/pc.c 2006-07-26 13:19:49.564046755 +0100
+@@ -147,7 +147,7 @@
}
/* hd_table must contain 4 block drivers */
{
RTCState *s = rtc_state;
int val;
-@@ -604,7 +604,7 @@ static void pc_init_ne2k_isa(NICInfo *nd
+@@ -604,7 +604,7 @@
}
/* PC hardware initialisation */
DisplayState *ds, const char **fd_filename, int snapshot,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename,
-@@ -853,7 +853,7 @@ static void pc_init1(int ram_size, int v
+@@ -853,7 +853,7 @@
}
}
DisplayState *ds, const char **fd_filename,
int snapshot,
const char *kernel_filename,
-@@ -866,7 +866,7 @@ static void pc_init_pci(int ram_size, in
+@@ -866,7 +866,7 @@
initrd_filename, 1);
}
DisplayState *ds, const char **fd_filename,
int snapshot,
const char *kernel_filename,
-diff -r 2b3e57b3e1ec vl.c
---- a/vl.c Mon Jun 26 15:16:39 2006 +0100
-+++ b/vl.c Mon Jun 26 15:16:44 2006 +0100
-@@ -123,7 +123,7 @@ const char* keyboard_layout = NULL;
+Index: ioemu/vl.c
+===================================================================
+--- ioemu.orig/vl.c 2006-07-26 13:19:49.552048007 +0100
++++ ioemu/vl.c 2006-07-26 13:19:49.566046547 +0100
+@@ -123,7 +123,7 @@
const char* keyboard_layout = NULL;
int64_t ticks_per_sec;
int boot_device = 'c';
int pit_min_timer_count = 0;
int nb_nics;
NICInfo nd_table[MAX_NICS];
-@@ -5320,7 +5320,7 @@ int main(int argc, char **argv)
+@@ -5320,7 +5320,7 @@
help();
break;
case QEMU_OPTION_m:
if (ram_size <= 0)
help();
if (ram_size > PHYS_RAM_MAX_SIZE) {
-diff -r 2b3e57b3e1ec vl.h
---- a/vl.h Mon Jun 26 15:16:39 2006 +0100
-+++ b/vl.h Mon Jun 26 15:16:44 2006 +0100
-@@ -138,7 +138,7 @@ extern int xc_handle;
+Index: ioemu/vl.h
+===================================================================
+--- ioemu.orig/vl.h 2006-07-26 13:19:49.552048007 +0100
++++ ioemu/vl.h 2006-07-26 13:19:49.567046443 +0100
+@@ -138,7 +138,7 @@
extern int xc_handle;
extern int domid;
extern int bios_size;
extern int rtc_utc;
extern int cirrus_vga_enabled;
-@@ -542,7 +542,7 @@ int qcow_compress_cluster(BlockDriverSta
+@@ -542,7 +542,7 @@
#ifndef QEMU_TOOL
int boot_device,
DisplayState *ds, const char **fd_filename, int snapshot,
const char *kernel_filename, const char *kernel_cmdline,
+Index: ioemu/hw/vga.c
+===================================================================
+--- ioemu.orig/hw/vga.c 2006-07-26 13:19:49.549048319 +0100
++++ ioemu/hw/vga.c 2006-07-26 13:20:17.956085603 +0100
+@@ -1293,7 +1293,8 @@
+ static void vga_draw_graphic(VGAState *s, int full_update)
+ {
+ int y1, y, update, page_min, page_max, linesize, y_start, double_scan, mask;
+- int width, height, shift_control, line_offset, page0, page1, bwidth;
++ int width, height, shift_control, line_offset, bwidth;
++ ram_addr_t page0, page1;
+ int disp_width, multi_scan, multi_run;
+ uint8_t *d;
+ uint32_t v, addr1, addr;
-diff -r 0ef2ae12258c hw/vga.c
---- a/hw/vga.c Mon Jun 26 16:07:22 2006 +0100
-+++ b/hw/vga.c Tue Jun 27 09:42:44 2006 +0100
-@@ -1287,6 +1287,105 @@ void vga_invalidate_scanlines(VGAState *
+Index: ioemu/hw/vga.c
+===================================================================
+--- ioemu.orig/hw/vga.c 2006-07-26 13:20:34.464363234 +0100
++++ ioemu/hw/vga.c 2006-07-26 13:20:34.660342784 +0100
+@@ -1287,6 +1287,105 @@
}
}
/*
* graphic modes
*/
-@@ -1381,6 +1480,11 @@ static void vga_draw_graphic(VGAState *s
+@@ -1382,6 +1481,11 @@
printf("w=%d h=%d v=%d line_offset=%d cr[0x09]=0x%02x cr[0x17]=0x%02x linecmp=%d sr[0x01]=0x%02x\n",
width, height, v, line_offset, s->cr[9], s->cr[0x17], s->line_compare, s->sr[0x01]);
#endif
addr1 = (s->start_addr * 4);
bwidth = width * 4;
y_start = -1;
-@@ -1699,6 +1803,14 @@ void vga_common_init(VGAState *s, Displa
+@@ -1700,6 +1804,14 @@
vga_reset(s);
s->vram_ptr = qemu_malloc(vga_ram_size);
s->vram_offset = vga_ram_offset;
s->vram_size = vga_ram_size;
-diff -r 0ef2ae12258c hw/vga_int.h
---- a/hw/vga_int.h Mon Jun 26 16:07:22 2006 +0100
-+++ b/hw/vga_int.h Tue Jun 27 09:42:44 2006 +0100
+Index: ioemu/hw/vga_int.h
+===================================================================
+--- ioemu.orig/hw/vga_int.h 2006-07-26 13:20:34.464363234 +0100
++++ ioemu/hw/vga_int.h 2006-07-26 13:20:34.661342680 +0100
@@ -76,6 +76,7 @@
#define VGA_STATE_COMMON \
-diff -r 62e05863ec04 hw/cirrus_vga.c
---- a/hw/cirrus_vga.c Mon Jun 26 15:18:40 2006 +0100
-+++ b/hw/cirrus_vga.c Mon Jun 26 15:19:40 2006 +0100
+Index: ioemu/hw/cirrus_vga.c
+===================================================================
+--- ioemu.orig/hw/cirrus_vga.c 2006-07-26 13:18:13.906013141 +0100
++++ ioemu/hw/cirrus_vga.c 2006-07-26 13:20:34.462363443 +0100
@@ -28,6 +28,9 @@
*/
#include "vl.h"
/*
* TODO:
-@@ -231,6 +234,8 @@ typedef struct CirrusVGAState {
+@@ -231,6 +234,8 @@
int cirrus_linear_io_addr;
int cirrus_linear_bitblt_io_addr;
int cirrus_mmio_io_addr;
uint32_t cirrus_addr_mask;
uint32_t linear_mmio_mask;
uint8_t cirrus_shadow_gr0;
-@@ -267,6 +272,8 @@ typedef struct CirrusVGAState {
+@@ -267,6 +272,8 @@
int last_hw_cursor_y_end;
int real_vram_size; /* XXX: suppress that */
CPUWriteMemoryFunc **cirrus_linear_write;
} CirrusVGAState;
typedef struct PCICirrusVGAState {
-@@ -276,6 +283,8 @@ typedef struct PCICirrusVGAState {
+@@ -276,6 +283,8 @@
static uint8_t rop_to_index[256];
/***************************************
*
* prototypes.
-@@ -2520,6 +2529,80 @@ static CPUWriteMemoryFunc *cirrus_linear
+@@ -2520,6 +2529,80 @@
cirrus_linear_bitblt_writel,
};
/* Compute the memory access functions */
static void cirrus_update_memory_access(CirrusVGAState *s)
{
-@@ -2538,11 +2621,39 @@ static void cirrus_update_memory_access(
+@@ -2538,11 +2621,39 @@
mode = s->gr[0x05] & 0x7;
if (mode < 4 || mode > 5 || ((s->gr[0x0B] & 0x4) == 0)) {
s->cirrus_linear_write[0] = cirrus_linear_writeb;
s->cirrus_linear_write[1] = cirrus_linear_writew;
s->cirrus_linear_write[2] = cirrus_linear_writel;
-@@ -3136,6 +3247,13 @@ static void cirrus_pci_lfb_map(PCIDevice
+@@ -3136,6 +3247,13 @@
/* XXX: add byte swapping apertures */
cpu_register_physical_memory(addr, s->vram_size,
s->cirrus_linear_io_addr);
cpu_register_physical_memory(addr + 0x1000000, 0x400000,
s->cirrus_linear_bitblt_io_addr);
}
-diff -r 62e05863ec04 hw/pc.c
---- a/hw/pc.c Mon Jun 26 15:18:40 2006 +0100
-+++ b/hw/pc.c Mon Jun 26 15:19:40 2006 +0100
-@@ -783,14 +783,14 @@ static void pc_init1(uint64_t ram_size,
+Index: ioemu/hw/pc.c
+===================================================================
+--- ioemu.orig/hw/pc.c 2006-07-26 13:20:34.396370329 +0100
++++ ioemu/hw/pc.c 2006-07-26 13:20:34.463363339 +0100
+@@ -783,14 +783,14 @@
if (cirrus_vga_enabled) {
if (pci_enabled) {
pci_cirrus_vga_init(pci_bus,
vga_ram_size, 0, 0);
}
-diff -r 62e05863ec04 hw/vga.c
---- a/hw/vga.c Mon Jun 26 15:18:40 2006 +0100
-+++ b/hw/vga.c Mon Jun 26 15:19:40 2006 +0100
-@@ -1668,6 +1668,7 @@ static void vga_map(PCIDevice *pci_dev,
+Index: ioemu/hw/vga.c
+===================================================================
+--- ioemu.orig/hw/vga.c 2006-07-26 13:20:33.293485412 +0100
++++ ioemu/hw/vga.c 2006-07-26 13:20:34.464363234 +0100
+@@ -1669,6 +1669,7 @@
}
}
void vga_common_init(VGAState *s, DisplayState *ds, uint8_t *vga_ram_base,
unsigned long vga_ram_offset, int vga_ram_size)
{
-@@ -1698,7 +1699,7 @@ void vga_common_init(VGAState *s, Displa
+@@ -1699,7 +1700,7 @@
vga_reset(s);
s->vram_offset = vga_ram_offset;
s->vram_size = vga_ram_size;
s->ds = ds;
-@@ -1808,6 +1809,31 @@ int vga_initialize(PCIBus *bus, DisplayS
- #endif
- }
+@@ -1811,6 +1812,31 @@
return 0;
-+}
-+
+ }
+
+void *vga_update_vram(VGAState *s, void *vga_ram_base, int vga_ram_size)
+{
+ uint8_t *old_pointer;
+ s->vram_ptr = vga_ram_base;
+
+ return old_pointer;
- }
-
++}
++
/********************************************************/
-diff -r 62e05863ec04 hw/vga_int.h
---- a/hw/vga_int.h Mon Jun 26 15:18:40 2006 +0100
-+++ b/hw/vga_int.h Mon Jun 26 15:19:40 2006 +0100
-@@ -166,5 +166,6 @@ void vga_draw_cursor_line_32(uint8_t *d1
+ /* vga screen dump */
+
+Index: ioemu/hw/vga_int.h
+===================================================================
+--- ioemu.orig/hw/vga_int.h 2006-07-26 13:20:33.063509409 +0100
++++ ioemu/hw/vga_int.h 2006-07-26 13:20:34.464363234 +0100
+@@ -166,5 +166,6 @@
unsigned int color0, unsigned int color1,
unsigned int color_xor);
+void *vga_update_vram(VGAState *s, void *vga_ram_base, int vga_ram_size);
extern const uint8_t sr_mask[8];
extern const uint8_t gr_mask[16];
-diff -r 62e05863ec04 vl.c
---- a/vl.c Mon Jun 26 15:18:40 2006 +0100
-+++ b/vl.c Mon Jun 26 15:19:40 2006 +0100
-@@ -5147,6 +5147,78 @@ static void select_soundhw (const char *
- #endif
+Index: ioemu/vl.c
+===================================================================
+--- ioemu.orig/vl.c 2006-07-26 13:20:34.398370121 +0100
++++ ioemu/vl.c 2006-07-26 13:20:34.466363026 +0100
+@@ -5148,6 +5148,78 @@
#define MAX_NET_CLIENTS 32
-+
+
+#include <xg_private.h>
+
+/* FIXME Flush the shadow page */
+
+ return 0;
+}
-
++
int main(int argc, char **argv)
{
-diff -r 62e05863ec04 vl.h
---- a/vl.h Mon Jun 26 15:18:40 2006 +0100
-+++ b/vl.h Mon Jun 26 15:19:40 2006 +0100
-@@ -136,6 +136,13 @@ extern int reset_requested;
+ #ifdef CONFIG_GDBSTUB
+Index: ioemu/vl.h
+===================================================================
+--- ioemu.orig/vl.h 2006-07-26 13:20:34.268383684 +0100
++++ ioemu/vl.h 2006-07-26 13:20:34.467362921 +0100
+@@ -136,6 +136,13 @@
void main_loop_wait(int timeout);